#include "Server.hpp"
#include <iostream>

int main()
{
	Server server;
	std::cout << "pos 1" << std::endl; 
	server.OpenPipeForRead();  // server(读)打开了，cilent(写)没打开，会在这里阻塞
	std::cout << "pos 2" << std::endl; 
	// client一旦打开，会从open函数返回，在pos2与pos3之间等待 
	// 在open互相等待，保证客户端与服务端同时进行IO操作

	std::string message;
	while (true)
	{
		//写端关闭时，读操作返回0字节，而非阻塞，陷入死循环
		if (server.RecvPipe(&message) > 0) 
		{
			std::cout << "client say#" << message << std::endl;
		}
		else
		{
			break;
		}

		std::cout << "pos 3" << std::endl;
	}

	std::cout << "client quit,me too" << std::endl;

	server.ClosePipe();

	return 0;
}